//package com.tools.common.utils;
//
//import android.app.ActivityManager;
//import android.app.AppOpsManager;
//import android.app.usage.UsageStats;
//import android.app.usage.UsageStatsManager;
//import android.content.Context;
//import android.content.pm.ApplicationInfo;
//import android.content.pm.PackageManager;
//import android.os.Build;
//import android.support.annotation.RequiresApi;
//import android.text.TextUtils;
//
//import java.util.Calendar;
//import java.util.List;
//
///**
// * Created by joe_wang on 10/23/2017.
// */
//
//public class UsageStatsUtils {
//    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
//    public static List<UsageStats> get(Context context) {
//        if(!isEnabled(context)) {
//            return null;
//        }
//
//        UsageStatsManager usm = (UsageStatsManager) context.getSystemService("usagestats");
//        if(usm == null) {
//            return null;
//        }
//
//        Calendar cal = Calendar.getInstance();
//        long end = cal.getTimeInMillis();
//        cal.add(Calendar.MINUTE, -1);
//        long start = cal.getTimeInMillis();
//
//        return usm.queryUsageStats(UsageStatsManager.INTERVAL_BEST, start, end);
//    }
//
//    public static boolean isEnabled(Context context) {
//        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//            if(Build.VERSION.SDK_INT > Build.VERSION_CODES.M && isUsageAccessEnabled(context)) {
//                return false;
//            }
//            return true;
//        }
//
//        return false;
//    }
//
//    public static boolean isUsageAccessEnabled(Context context) {
//        if(!canGetRunningAppByAm(context)){
//            try {
//                PackageManager packageManager = context.getPackageManager();
//                ApplicationInfo applicationInfo = null;
//                applicationInfo = packageManager.getApplicationInfo(
//                        context.getPackageName(), 0);
//                AppOpsManager appOpsManager = (AppOpsManager) context
//                        .getSystemService("appops");
//                int mode = appOpsManager.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS,
//                        applicationInfo.uid, applicationInfo.packageName);
//                return mode == AppOpsManager.MODE_ALLOWED;
//            } catch (PackageManager.NameNotFoundException e) {
//                e.printStackTrace();
//                return false;
//            }
//        }
//        return true;
//
//    }
//
//    public static boolean canGetRunningAppByAm(Context context) {
//        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
//        List<ActivityManager.RunningAppProcessInfo> pRunning = am.getRunningAppProcesses();
//
//        if (pRunning == null) {
//            return false;
//        } else {
//            for (ActivityManager.RunningAppProcessInfo app : pRunning) {
//                if(TextUtils.isEmpty(app.processName)
//                        || TextUtils.equals(app.processName, context.getPackageName())
//                        || app.processName.startsWith("com.google.firebase")) {
//                    continue;
//                } else {
//                    return true;
//                }
//            }
//
//            return false;
//        }
//    }
//}